package com.ruoyi.system.domain.base;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * bom详情对象 base_bom_info
 *
 * @author ruoyi
 * @date 2023-02-17
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("base_bom_info")
public class BaseBomInfo implements Serializable {

private static final long serialVersionUID=1L;


        /** bom详情id */
        @TableId(value = "id")
    private Long id;

        /** bom-id(关联bom表) */
        private Long bomId;

        /** bom详情名称 */
        private String bomInfoName;

        /** 父工厂id */
        private Long parentId;

        /** 祖级列表 */
        private String ancestors;

        /** 图文号 */
        @Excel(name = "图文号")
    private String photoNum;

        /** 物料名称 */
        @Excel(name = "物料名称")
    private String materialName;

        /** 物料编码 */
        @Excel(name = "物料编码")
    private String materialCode;

        /** 台套数 */
        @Excel(name = "台套数")
    private Double setNumber;

        /** 材料 */
        @Excel(name = "材料")
    private String stuff;

        /** 质量（kg） */
        @Excel(name = "质量" , readConverterExp = "k=g")
    private Integer mass;

        /** 总质量（kg） */
        @Excel(name = "总质量" , readConverterExp = "k=g")
    private Integer totalMass;

        /** 图纸版本号 */
        @Excel(name = "图纸版本号")
    private String versionNum;

        /** 变更记录 */
        @Excel(name = "变更记录")
    private String changeRecord;

        /** 类型（1子bom2半成品3过程件4材料） */
        @Excel(name = "类型" , readConverterExp = "1=子bom2半成品3过程件4材料")
    private Integer type;

    /** 物料状态（0正常 1停用） */
    @Excel(name = "物料状态" , readConverterExp = "0=正常,1=停用")
    private String status;

    @ApiModelProperty(value = "规格型号")
    private String model;

    /** 子bom层级 */
    //忽略映射
    @TableField(exist = false)
    private List<BaseBomInfo> children = new ArrayList<BaseBomInfo>();

        /** 创建者 */
        private String createBy;

        /** 创建时间 */
        private Date createTime;

        /** 更新者 */
        private String updateBy;

        /** 更新时间 */
        private Date updateTime;
}
